towards final refactors and cleanup