Finish implementation of all methods, still needs debugging