Version 0.9: Re-implemented using funtional programming