type signatures added