first sub template implementation