Status: Rewritten, let me know what you think!!