this framework is really fun to play around with