Much better than foreign functin interface lib