finished all methods - just need to test to make sure everything works nicely :)