Further implementaion