Add override annotations, refactor, more meaningful method names