Cleaned up things and added input engine framework