all methods are working, adding the rest