COmpleted version 0.1