adding ico and improving overall functionality