everthing implemented works