refactored init functions