huge refactor #2 for today