further split up / modularize tutorial