added support for custom initializers