splitting functionalities into classes/files