Broke up definitions and declarations in separate files. Declared base storage class as protected member.