more fail-proof bluerint class