[c++] How to make object assignable in editor?

hi guys

im implementing my own steering behaviors and i would like them to be assignable to my actors in editor.
at the moment i can create behaviors in actor constructor and they show in actor details in editor but i cant add/remove them.

here is simplified view of my classes:

UCLASS(Blueprintable, BlueprintType, DefaultToInstanced)
class UMyBase : public UObject
{
	// some common functions with near zero functionality
};

UCLASS()
class UMyDerived : public UMyBase
{
	// some properties and functions
};

UCLASS()
class AMyActor : public AActor
{
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category=SomeCat)
	TArray<UMyBase*>	m_behaviors;
};

so my questions are:

  1. what keywords do i need to put in UCLASS of UMyBase class to make instances assignable to AMyActor’s m_behaviors array

  2. what type needs that array to be and again what keywords are needed in it’s UPROPERTY to make it editable

  3. would i need to create some blueprints from my behaviors to make them assignable?

my knowledge of blueprints is really limited so maybe i just missed something obvious?