Extracted traits to new files. Tests for throw when func called more than ince