Add support for lazy initializated types

Resolves #331.
What would be the benefit of doing this?