split up return interface types
GError; pass throws flag for functions