seperate initialization and assignment
empty functions