add initial code implementation