extended tutorial