added: more concerns
changed: codebase is more DRYed out now