code organized in proper classes