first commit: all code