this is a better way to do require attributes
add next::can
moving stuff around