working on casting

gonna try reorging subclass naming