finish implementation, check missing