adding various extension methods