sample implementations of various data structures