added factory interface, fixed namespaces.