added code
updated readme
Moved to MVVMish design, added "Random" functionality
abstract class refactor, added global keyboard detection
Added keyboard handling