convert to stylus and improve structure