added test and require setup