fixed bug on return values