final working version 0.1.