separate files
author
define types
?