refactor
refactor + test tweaks