Moved over to more polymorphic design.