forward decl should be enough imo