started implementation of all methods except splice()