some heavy design decisions