source codes for learning bottle