yeah, still not done refactoring