Self-Adaptable Virtual Machines