add readyState pattern
change version