implementing actions and seperating to basic model classes