add sorted insert function