webapp logic complete