cursor implemented