updated module exports to function constructors
added application DI