first 4 methods have been done.