added returns when needed