initial code (no user methods)