Added declarative, plus some cleanup