first commit; working code;