improve function get and list