Handles deps properly now
handles optional deps (by ignoring them!)