initialization optimised to prevent loading error