added functions parameters and return values (tested) + tests