made classes that i don't understand