semi functioning template