16th commit: broad decomposition, added new classes