profile refactor