add support for slice, array, map, custom types fields of struct & fixed #4