Code is now modular, modes can be added easily

Needs more documentation, though