impl compiletime procedures