Separated ISystem interface and AbstractSystem class