new methods added. tests undone.