Added different render types, callback & return