more working specs. but by god do i need to refactor things