Move util package and add field listener support