added all dependencies for practicality