fuctional object