Most methods share functionality, this should be refactored.
Most methods share functionality, this should be refactored.