complete tutorial version