educational project, to showcase some design approaches when programming :)