added more type signatures