add validate
layout
detect abstract
dont do this fancy stuff yet