finished, will try to implement cursor