added specification classes and restructured package layout