adding support for custom initializers