Separated functionality. Broken work in-progress.