adding a lot of extension methods