add several listeners
milestone
frontend almost finished