added some methods that can use less garbage