added the abstract class logic
added some nosetests