refactoring now with 100% more code