a bit of refactor with better naming