move definitions to separate file