for non-kernel require explicit decls, changes for that, and params. build system change, new rules file, split makefiles. some unexplainable changes