Invoke `addTopic` will return topic

Passing `TopicElement` object doesn't needed when invoke `addSubTopic`.
That aovid to import `TopicElement` to construct new object and passing
to.

`addTopic` will help to create new `TopicElement` object if not topic passed
and return added topic.
Merge branch 'pre-alpha'