all code is commented