started implementation of all methods