TODO: We should pull this off without libs