started implement functions