actual user data is used, note constructor is changed