add method blocks, needs to be made elegant