Create better implemantation