this is a learning project, credit goes to a list of people