adds prepare and new methods