separate profile operations into a class