Refactored to remove logic classes, they were unneeded and just added more memory overhead