#52, #42, #25 Code cleanup + refactoring