Interfaces and functionality for creating class instances