first methods and classes implemented