Refactor conditional Plug builder to actually support private functions