initial commit
add error handing and optimize srceen layout