function pointers added + structere changed