adding more methods and cleaning up CPU