some classes I made before
might be useful in the future