optimize naming and add spec example