factored out conversion extensions, starting to learn traits and module visibility stuff!