add imprint, and refactor into template