factories and all it needs