Version 1. Tested and functional.