revamped it with the framework originally developed by @koulmomo,
@alfredkam @rexkm