simplified template framework