restructured project to make it more understandable