final refactor before merge