implement syscall and add new tests