MODIFIED: refactoring steps. TODO: more of the kind.