factory pattern for interface and empire
ui first draft
Merge branch 'refact/factory' into develop