holy shit matt refactor con prototypes
matt layers of abstraction