Now remembers held keys
Major refactoring of codebase to be more optimized and ready for new functionality
Added support for held keys