implemented by Jake indursky and I for a school project