some classes I wrote