separated methods for creating different objects