implemented more complete test, blacklisting and a convenience function