Refactored enums, optimized requests, added a proper request handler