Implementations of various useful data structures