initialize before usage