introduced simple class separation and better naming