cleaned up intialization