Restructure package to be more idiomatic