split defs out into separate files, basic tabbed layout