master added new methods and separated concerns