First commit of initial implementation