fully working functionalized