move minor error checking outside of private virtual method impl