fixed base template implementation