add synchronized methods