setup basic generic structure