adjusted function header