Updated API structure (seperated classes)