Added classes for handling keyboard and mouse input