added parallel functions