stopped working on the refactor, due to complexity being increased