Updated for Steam, Refactored some methods