4 step

изменил include - уменьшил обьем в 3 раза. Базонезависимый код ?!(
условия соблюдены но не проверен)