added recursive directives (THIS SHOULD BE IMPROVED ASAP)