initial implementation of issue #13, still need to get_output() and generate_unique_mac()