simple implementation of spec