split functions in different classes, reduce project class complexity