Starting to add Abstract implementations.