refactor structure a bit; support virtualenv in prompt