first import
general design, some dependencies
minor