all methods added, still needs testing