Refactoring, added some convenience initializers