cleaned up some redundant methods and added input data