better single sourcing version