extended skeleton with classes implemented