bugfixed the query method. separated all service providers into individual files