better separation and improved naming