this could be handled nicer with enum