Feature/add node api

can remove this if its not needed