first commit need to do a demo and fix it