added some state in return object