implement approve feature