refactor and clean up.