Updated to be self-sufficient