forward declaration failed, combine into one