Changed the file structure, and added virtualenv support