from AbstractClass to Interface
performance tuning
from seq to array